Skip to content

Define FaaS exception event#3451

Merged
trask merged 1 commit intoopen-telemetry:mainfrom
trask:faas-exceptions
Mar 17, 2026
Merged

Define FaaS exception event#3451
trask merged 1 commit intoopen-telemetry:mainfrom
trask:faas-exceptions

Conversation

@trask
Copy link
Copy Markdown
Member

@trask trask commented Feb 18, 2026

Similar to

Note: while FaaS does have a client span defined, I'm not convinced it should exist, and the metrics seem to be only about server side, and so I'm aligning the exception event with the metrics and server span.

@github-actions github-actions Bot added enhancement New feature or request area:faas labels Feb 18, 2026
@github-actions
Copy link
Copy Markdown

This PR contains changes to area(s) that do not have an active SIG/project and will be auto-closed:

  • faas

Such changes may be rejected or put on hold until a new SIG/project is established.

Please refer to the Semantic Convention Areas
document to see the current active SIGs and also to learn how to kick start a new one.

@github-actions github-actions Bot closed this Feb 18, 2026
@trask trask reopened this Feb 18, 2026
@trask trask marked this pull request as ready for review February 18, 2026 02:34
@trask trask requested review from a team as code owners February 18, 2026 02:34
@lmolkova lmolkova moved this from Untriaged to Needs More Approval in Semantic Conventions Triage Feb 19, 2026
@kamphaus
Copy link
Copy Markdown
Contributor

while FaaS does have a client span defined, I'm not convinced it should exist, and the metrics seem to be only about server side, and so I'm aligning the exception event with the metrics and server span

Isn't a Function as a Service invocation nothing else than a HTTP request or RPC invocation?
Would it make sense to align it with the HTTP and RPC conventions and distinguish client/server events/spans/metrics?

Why would you only track the server-side portion?

@trask
Copy link
Copy Markdown
Member Author

trask commented Feb 19, 2026

Why would you only track the server-side portion?

I'm not sure how client instrumentation would know it's calling a FaaS. I looked but couldn't find any examples of FaaS client instrumentation in OpenTelemetry repos.

@thompson-tomo
Copy link
Copy Markdown
Contributor

thompson-tomo commented Feb 21, 2026

Isn't a Function as a Service invocation nothing else than a HTTP request or RPC invocation?
Would it make sense to align it with the HTTP and RPC conventions and distinguish client/server events/spans/metrics?

I agree, the shape/state of the faas telemetry especially tracing has bothered me for a while. I think that tracing of faas should rely on the definitions from the domain of the trigger ie rpc, messaging but adds a group of attributes to describe the function.

Based on that I don't think we need a dedicated faas exception but instead use messaging/rpc exception where appropriate.

I'm not sure how client instrumentation would know it's calling a FaaS. I looked but couldn't find any examples of FaaS client instrumentation in OpenTelemetry repos.

The scenario which comes to mind is https://opentelemetry.io/docs/specs/semconv/faas/aws-lambda/#api-gateway-request-proxy-lambda-tracing-active. With the most likely repo being https://github.com/open-telemetry/opentelemetry-lambda

@trask
Copy link
Copy Markdown
Member Author

trask commented Feb 23, 2026

cc @open-telemetry/lambda-extension-approvers

@trask
Copy link
Copy Markdown
Member Author

trask commented Feb 23, 2026

Example of client side "invoke": https://docs.aws.amazon.com/lambda/latest/dg/example_lambda_Invoke_section.html

We think this is the only example of client-side knowledge of FaaS client call, and generally FaaS are just treated as HTTP/mesaging/etc endpoints.

So may be ok to say "invocation" = server, and prefix with client. for the rare case, e.g.

  • faas.invocation.duration
  • faas.client.invocation.duration

Instead of:

  • faas.server.invocation.duration
  • faas.client.invocation.duration

And if we needed to model the AWS thing, it could be aws.*.

Copy link
Copy Markdown
Member

@tylerbenson tylerbenson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems reasonable to me... I agree that excluding server from the name makes sense.

@github-actions
Copy link
Copy Markdown

This PR has been labeled as stale due to lack of activity. It will be automatically closed if there is no further activity over the next 7 days.

@github-actions github-actions Bot added the Stale label Mar 10, 2026
@trask trask removed the Stale label Mar 10, 2026
@kamphaus kamphaus moved this from Needs More Approval to Ready to be Merged in Semantic Conventions Triage Mar 17, 2026
@trask trask added this pull request to the merge queue Mar 17, 2026
Merged via the queue into open-telemetry:main with commit af46181 Mar 17, 2026
43 of 46 checks passed
@trask trask deleted the faas-exceptions branch March 17, 2026 20:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

5 participants